import axios from "axios";
import { rootPath } from "@/config/globalParam";
import { Message } from "element-ui";
import _ from "lodash";

/**
 * 文件上传
 * fileName
 * url 请求全路径
 * param 参数
 */

export default async (param = {}, url) => {
  let config = {
    baseURL: rootPath,
    timeout: 1800000,
    responseType: "json",
    withCredentials: true, // 是否允许带cookie这些
    headers: {
      "Content-Type": "multipart/form-data",
      Authorization: "Bearer "+ sessionStorage.getItem("token")
    }
  }; //添加请求头

  //处理文件上传 使用FormData处理 Blob, File，string类型
  let fd = new FormData();
  for (let o in param) {
    if (o == "file" && _.isArray(param[o])) {
      for (let index = 0; index < param[o].length; index++) {
        fd.append(o, param[o][index]);
      }
    } else {
      fd.append(o, param[o]);
    }
  }

  return axios.post(url, fd, config).then(res => {
    //返回结果为空
    if (!res) {
      Message.error("发生错误！请重新操作");
      return;
    }
    //200成功,返回所有的数据，不同的页面对数据的处理不一样
    if (res.status == "200") {
      return res.data;
    } else {
      Message.error("请求发生错误，请联系管理员");
      return;
    }
  });
};
